﻿////////////////////////////////////////////////////////////////////////
//                                                                    //
//                 Project: MediaElement Extensions                   //
//               Project URL: http://mext.codeplex.com                //
//                           GPL License v2                           //
//                                                                    //
//             Written by Geoffrey DANIEL { NeuroCypher }             //
//           Blog: http://blogs.developpeur.org/neurocypher           //
//                                                                    //
////////////////////////////////////////////////////////////////////////

using System;
using System.Windows;
using System.Windows.Controls;
using MediaElementExtensions.Controls.Managers;

namespace MediaElementExtensions.Controls.Interfaces
{

    public interface IMediaElementControl
    {

        MediaElement MediaElement { get; }
        MediaElementPropertyManager MediaElementManager { get; }

        bool AutoDisableWhenNoSourceLoaded { get; }

        void InitializeActions(
            Action aMediaElementChanged,
            Action<object, RoutedEventArgs> aMediaElementCurrentStateChanged,
            Action<object, RoutedEventArgs> aMediaElementDownloadProgressChanged,
            Action<object, RoutedEventArgs> aMediaElementMediaEnded,
            Action<object, ExceptionRoutedEventArgs> aMediaElementMediaFailed,
            Action<object, RoutedEventArgs> aMediaElementMediaOpened);

        void InitializeBindings();
        void CheckIsEnabled();

    }

}
